草庐IT

Android JSONObject 与 GSON

全部标签

java - GSON 不区分大小写的枚举反序列化

我有一个枚举:enumType{LIVE,UPCOMING,REPLAY}还有一些JSON:{"type":"live"}还有一个类(class):classEvent{Typetype;}当我尝试使用GSON反序列化JSON时,我收到Event类型字段的null,因为JSON中类型字段的大小写不匹配枚举的那个。Eventsevents=newGson().fromJson(json,Event.class);如果我将枚举更改为以下,那么一切正常:enumType{live,upcoming,replay}但是,我想将枚举常量全部保留为大写。我假设我需要编写一个适配器,但没有找到任何好

java - 使用两个 DateFormat 将 Gson 转换为 json

我的服务器JSON返回两种不同类型的DateFormat。"MMMdd,yyyy"和"MMMdd,yyyyHH:mm:ss"当我使用以下内容转换JSON时,这很好:Gsongson=newGsonBuilder().setDateFormat("MMMdd,yyyy").create();但是当我想要详细的日期格式并将其更改为此时,它会抛出异常com.google.gson.JsonSyntaxException:Mar21,2013Gsongson=newGsonBuilder().setDateFormat("MMMdd,yyyyHH:mm:ss").create();gson有没

java - 字符串的 GSON 问题

Strings="m\\"+"/m\\/m/m/m/m/m";LinkedHashMaphm=newLinkedHashMap();hm.put("test",s);System.out.println(hm+"Hashmap="+hm.toString());精细输出为{test=m\/m\/m/m/m/m/m}Hashmap={test=m\/m\/m/m/m/m/m}Strings2=newGson().toJson(hm.toString());System.out.println("Jsonresultis"+s2);不好输出是Json结果是"{test\u003dm\\/m

java - Gson 到 HashMap

有没有办法将包含json的String转换为HashMap,其中每个key都是json-key,value是json-key的值?json没有嵌套值。我正在使用Gson库。例如,给定JSON:{"id":3,"location":"NewYork"}生成的HashMap:谢谢 最佳答案 使用TypeToken,根据theGSONFAQ:Gsongson=newGson();TypestringStringMap=newTypeToken>(){}.getType();Mapmap=gson.fromJson(json,stringS

java - 为什么 GSON 使用字段而不是 getter/setter?

为什么GSON使用ONLY字段(私有(private)、公共(public)、protected)?有没有办法告诉GSON只使用getter和setter? 最佳答案 一般来说,当您序列化/反序列化对象时,您这样做是为了得到对象状态的精确副本;因此,您通常希望规避OO设计中通常需要的封装。如果您不规避封装,则可能无法最终得到一个在反序列化之后具有与序列化之前完全相同的状态的对象。此外,请考虑您不想为特定属性提供setter的情况。如果您正在使用getter和setter,序列化/反序列化应该如何操作?

java - 列表的 Kotlin Gson 自定义反序列化器

如何在Gson中注册自定义的Json反序列化器?当我在Java代码中注册反序列化器时一切正常,但是当我将Kotlin转换为Java时-没有调用反序列化器方法。Kotlin注册码:vallistType:Type=object:TypeToken>(){}.typevalgson=GsonBuilder().registerTypeAdapter(listType,deserializer)valretrofit=Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson))Java代码:Typelist

gson - 使用 GSON 的 Kotlin 对象反序列化

我有课classThreadComment(banned:Int,closed:Int,comment:String?,date:String?,email:String?,files:ArrayList?,lasthit:Int,name:String?,num:String?,op:Int,parent:String?,postsCount:Int,sticky:Int,subject:String?,tags:String?,timestamp:Int,trip:String?):Comment(banned,closed,comment,date,email,files,las

json - 如何使用 Gson 反序列化继承的 Kotlin 数据类

在Android应用程序中,我需要为Kotlin数据类反序列化Json数据,并使用单一抽象级别。但我不知道在构造函数中放置正确的属性。作为一个简单的版本,假设我有一个Shape:abstractclassShape(openvalx:Int,openvaly:Int)有两个派生dataclassCircle(valradius:Int,overridevalx:Int,overridevaly:Int):Shape(x,y)和dataclassSquare(valwidth:Int,overridevalx:Int,overridevaly:Int):Shape(x,y)所以我的目标是

gson - Kotlin不可为空的值可以为空吗?

我有返回一些json的后端。我把它解析给我的类(class):classSomeData(@SerializedName("user_name")valname:String,@SerializedName("user_city")valcity:String,varnotNullableValue:String)使用gson转换器工厂:Retrofitretrofit=newRetrofit.Builder().baseUrl(ENDPOINT).client(okHttpClient).addConverterFactory(GsonConverterFactory.create(

gson - 使用 Gson 和 Kotlin 1.0 beta 4 反序列化具有惰性属性的类

使用Gson,我想反序列化一个包含惰性属性的Kotlin类。使用Kotlin1.0beta4在对象反序列化过程中出现以下错误:Causedby:java.lang.InstantiationException:can'tinstantiateclasskotlin.Lazy在Kotlin1.0beta2中,我曾经用@Transient注释标记属性,以告诉Gson跳过它。在beta4中,这是不可能的,因为注释会导致编译错误。Thisannotationisnotapplicabletotarget'memberpropertywithoutbackingfield'我不知道如何解决这个问